#include <iostream>
#include <vector>
#include <string>
using namespace std;

bool lexicographically(vector<string> v)
{
    for (size_t i = 0; i < v.size() - 1; i++)
    {
        if (v[i] > v[i + 1])
        {
            return false;
        }
    }
    return true;
}


bool lengths(vector<string> v)
{
    for (size_t i = 0; i < v.size() - 1; i++)
    {
        if (v[i].size() > v[i + 1].size())
        {
            return false;
        }
    }
    return true;
}


int main() {
    int n = 0;
    cin >> n;
    cin.ignore();   // 获取刚刚的换行符'\n'

    // 下面两种存放字符串的方法都可以写
    // 就是不能直接在for循环里面写 getline(cin, v[i]);
    // 因为此时v[i]并不存在，要么写成第一种方式，要么resize，
    // 但是用reserve也不行，只是开了空间，但是v[i]都也是不存在

    // vector<string> v;
    // string line;
    // for (int i = 0; i < n; ++i)
    // {
    //     getline(cin, line);
    //     v.push_back(line);
    // }

    vector<string> v;
    v.resize(n);
    for (int i = 0; i < n; ++i)
    {
        getline(cin, v[i]);
    }



    // for(auto e : v)
    // {
    //     cout << e << endl;
    // }

    bool ret1 = lexicographically(v);
    bool ret2 = lengths(v);

    if(ret1 && ret2)
    {
        cout << "both" << endl;
    }
    else
    {
        if(ret1)
            cout << "lexicographically" << endl;
        else if(ret2)
            cout << "lengths" << endl;
        else
            cout << "none" << endl;

    }

    return 0;
}
